
# -*- coding: utf-8 -*-

from django.forms import ModelForm, ModelChoiceField, ModelMultipleChoiceField
from django.utils.encoding import force_unicode
from django.forms import Textarea
from comunidadcyt.gruposDeInvestigacion.models import GruposDeInvestigacion as Grupos,\
                                                        SolicitudIngresoGrupo, HistorialGrupo
from comunidadcyt.departamentos.models import Departamentos
from comunidadcyt.lineasDeInvestigacion.models import LineasDeInvestigacion
from comunidadcyt.Registration_Users.models import User

class choiceName(ModelChoiceField):
    def label_from_instance(self, obj):
        name = force_unicode(obj.first_name +' '+ obj.last_name)
        return name

class choiceNameGrupo(ModelChoiceField):
    def label_from_instance(self, obj):
        name = force_unicode(obj.Nombre_grupo)
        return name

class choiceMultipleName(ModelMultipleChoiceField):
    def label_from_instance(self, obj):
        name = force_unicode(obj.first_name +' '+ obj.last_name)
        return name

class GruposDeInvestigacionForm(ModelForm):  
    def __init__(self, *args, **kwargs):
        super(GruposDeInvestigacionForm, self).__init__(*args, **kwargs)
        self.fields['Lineas'].queryset=LineasDeInvestigacion.objects.all().order_by('Nombre_linea')
        self.fields['Lineas'].help_text=None
        self.fields['Departamento'].queryset=Departamentos.objects.all().order_by('Nombre_departamento')
        self.fields['Departamento'].empty_label=None
        self.fields['Responsables']=choiceMultipleName(queryset=User.objects.all().order_by('first_name', 'last_name'),label="* Responsables")
        self.fields['Responsables'].empty_label=None
        self.fields['Miembros']=choiceMultipleName(queryset=User.objects.all().order_by('first_name', 'last_name'),label="* Miembros")
        
    class Meta:
        model = Grupos

class FormSolicitudIngresoGrupo(ModelForm):
    def __init__(self, user, *args, **kwargs):
        super(FormSolicitudIngresoGrupo, self).__init__(*args, **kwargs)
        self.fields['Usuario']=choiceName(queryset=User.objects.filter(pk = user.id))
        self.fields['Usuario'].label='Usuario'
        self.fields['Usuario'].empty_label=None
        self.fields['Grupo'].queryset=Grupos.objects.all()
        self.fields['Grupo'].help_text=None
        self.fields['Grupo'].empty_label=None

    class Meta:
        model = SolicitudIngresoGrupo
        fields = ('Usuario','Grupo','Mensaje')
        widgets = {'Mensaje': Textarea(attrs={'cols': 25, 'rows': 8})}

class FormHistorialGrupo(ModelForm):
    def __init__(self, hist, *args, **kwargs):
        super(FormHistorialGrupo, self).__init__(*args, **kwargs)
        self.fields['Usuario']=choiceName(queryset=User.objects.filter(pk = hist.Usuario.id))
        self.fields['Usuario'].label='Usuario'
        self.fields['Usuario'].empty_label=None
        #self.fields['Grupo'].queryset=choiceNameGrupo(queryset=Grupos.objects.filter(pk = hist.Grupo.id))
        #self.fields['Grupo'].help_text=None
        #self.fields['Grupo'].empty_label=None

    class Meta:
        model = HistorialGrupo
        fields = ('Usuario','Fecha','Motivo')
        widgets = {'Motivo': Textarea(attrs={'cols': 25, 'rows': 8})}

